#ifndef MAINWINDOW_H
#define MAINWINDOW_H

#include <QMainWindow>
#include <QGraphicsScene>

#include "PageRank.h"
#include "newactdlg.h"
#include "myview.h"

namespace Ui {
    class MainWindow;
}

class MainWindow : public QMainWindow
{
    Q_OBJECT   //Qt系统宏，用于信号槽机制
    public:
    PageRank* pr; //算法类
    QGraphicsScene  *scene; //绘图场景
    Newactdlg *newdlg;   //“新建”对话框
    QMenu *itemMenu;     //实体顶点的右键菜单
    QMenu *itemMenu_v;   //虚点的右键菜单
    QMenu *itemMenuE;    //边的右键菜单

    void setCloseMode(bool y,bool v = true);  //两个参数都为true时是“全关闭”模式，v为false则是“半关闭”模式
    explicit MainWindow(QWidget *parent = 0); //构造函数
    ~MainWindow();

    private:
    Ui::MainWindow *ui;  //ui

    public slots:
    void on_actNew_triggered();   //“新建”菜单项的触发信号槽
    void on_actClose_triggered(); //“关闭”菜单项的触发信号槽
    void on_actExit_triggered();  //“退出”菜单项的触发信号槽
    void on_actRun_triggered();   //“运行”菜单项的触发信号槽
    void on_actMatrix_triggered();//“邻接矩阵”菜单项的触发信号槽
    void on_actShowIO_triggered();//“显示出/入度”菜单项的触发信号槽
    void on_actAddV_triggered();  //“添加顶点”菜单项的触发信号槽
    void on_actAddE_triggered();  //“添加边”菜单项的触发信号槽
    void on_actAddE2_triggered(); //“添加边”菜单项（工具栏）的触发信号槽
    void on_actSet_triggered();   //“放置”菜单项的触发信号槽
    void on_actCancel_triggered();//“取消”菜单项的触发信号槽
    void on_actColor_triggered(); //“修改颜色”菜单项的触发信号槽
    void on_actName_triggered();  //“顶点命名”菜单项的触发信号槽
    void on_actDel_triggered();   //“删除图元”菜单项的触发信号槽
    void on_actShowVN_triggered();//“显示顶点信息”菜单项的触发信号槽
    void on_actShowVO_triggered();//“显示顶点编号”菜单项的触发信号槽
    void on_actRand_triggered();  //“随机生成”菜单项的触发信号槽


};

#endif // MAINWINDOW_H
